﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;

namespace HFUTCourseSimulation.Util {

    /// <summary>
    /// 代表一个颜色对，包括前景色和背景色
    /// </summary>
    public struct ColorPair {
        public ColorPair(Color foreground, Color background) {
            this.Foreground = foreground;
            this.Background = background;
        }

        /// <summary>
        /// 前景色（文本的颜色）
        /// </summary>
        public Color Foreground { get; set; }
        /// <summary>
        /// 背景色
        /// </summary>
        public Color Background { get; set; }
    }

    namespace ColorPreset {

        /// <summary>
        /// Material Design颜色合集
        /// </summary>
        public static class MdColors {
            private static Color LightText => Colors.White;
            private static Color DarkText => Color.FromRgb(33, 33, 33);

            public static ColorPair Red => new ColorPair(LightText, Color.FromRgb(244, 67, 54));
            public static ColorPair Pink => new ColorPair(LightText, Color.FromRgb(233, 30, 99));
            public static ColorPair Purple => new ColorPair(LightText, Color.FromRgb(156, 39, 176));
            public static ColorPair DeepPurple => new ColorPair(LightText, Color.FromRgb(103, 58, 183));
            public static ColorPair Indigo => new ColorPair(LightText, Color.FromRgb(63, 81, 181));
            public static ColorPair Blue => new ColorPair(LightText, Color.FromRgb(33, 150, 243));
            public static ColorPair LightBlue => new ColorPair(LightText, Color.FromRgb(3, 169, 244));
            public static ColorPair Cyan => new ColorPair(LightText, Color.FromRgb(0, 188, 212));
            public static ColorPair Teal => new ColorPair(LightText, Color.FromRgb(0, 150, 136));
            public static ColorPair Green => new ColorPair(LightText, Color.FromRgb(76, 175, 80));
            public static ColorPair LightGreen => new ColorPair(DarkText, Color.FromRgb(139, 195, 74));
            public static ColorPair Lime => new ColorPair(DarkText, Color.FromRgb(205, 220, 57));
            public static ColorPair Yellow => new ColorPair(DarkText, Color.FromRgb(255, 235, 59));
            public static ColorPair Amber => new ColorPair(DarkText, Color.FromRgb(255, 193, 7));
            public static ColorPair Orange => new ColorPair(DarkText, Color.FromRgb(255, 152, 0));
            public static ColorPair DeepOrange => new ColorPair(LightText, Color.FromRgb(255, 87, 34));
            public static ColorPair Brown => new ColorPair(LightText, Color.FromRgb(121, 85, 72));
            public static ColorPair Grey => new ColorPair(DarkText, Color.FromRgb(158, 158, 158));
            public static ColorPair BlueGrey => new ColorPair(LightText, Color.FromRgb(96, 125, 139));
        }

    }

}
